package cn.han.oopextends;
//本类用于测试继承中构造方法的使用
/**1.子类在创建对象时，默认会先调用父类的无参构造
 * 2.原因是子类的构造函数中第一行默认存在super()表示调用父类的无参构造
 * 3.当父类没有无参构造时可以通过super(参数)调用父类的其他含参构造但不可以
 * 不调用任何一个父类的构造函数，必须选择一个
 * 4.构造方法不能被继承，只能调用因为语法规定，构造方法必须与类名相同，
 * 在子类中无法存在父类的构造方法*/
public class TestExtends2 {
    public static void main(String[] args) {
        Son1 son1 = new Son1("s");

    }
}
//1.定义父类
class Father1{
    public Father1() {
        System.out.println("我是father1的无参构造");
    }
    public Father1(String s){
        System.out.println("我是father1的含参构造"+s);
    }
}
//2.定义子类
class Son1 extends Father1{
    public Son1(){
        System.out.println("son1");
    }
    public Son1(String s){
        super(s);
    }
}